package com.marvels.approve.process.service;

import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import com.marvels.approve.process.dto.AssistantDTO;
import com.marvels.approve.process.dto.FaceSigAppointmentDTO;
import com.marvels.approve.process.dto.FaceSignApiDTO;
import com.marvels.approve.process.dto.RoomLogDTO;
import com.marvels.common.dto.UserDTO;
import com.marvels.common.exception.MarvelsBusinessException;

public interface IFaceSigService {
	/**
	 * 推送面签视频
	 * @param dto
	 * @return
	 * @throws MarvelsBusinessException
	 */
	public String pushFaceSig(FaceSigAppointmentDTO dto) throws MarvelsBusinessException;
	/**
	 * 获取坐席正在面签的的预约和助理
	 * @param faceSignApiDto
	 * @return
	 * @throws MarvelsBusinessException
	 */
	public Map<String, Object> queryFaceSiging(FaceSignApiDTO faceSignApiDto) throws MarvelsBusinessException;
	/**
	 * 获取客户经理签名
	 * @param faceSignApiDto
	 * @return
	 * @throws MarvelsBusinessException
	 */
	public Map<String, Object> getTencentSig(FaceSignApiDTO faceSignApiDto) throws MarvelsBusinessException;
	/**
	 * 预约
	 * @param faceSignApiDto
	 * @return
	 * @throws MarvelsBusinessException
	 */
	public String appointment(FaceSignApiDTO faceSignApiDto) throws MarvelsBusinessException;

	/**
	 * 取消面签
	 * @param paramMap
	 * @return
	 * @throws MarvelsBusinessException
	 */
	public String cancelAppointment(FaceSignApiDTO faceSignApiDto) throws MarvelsBusinessException;
	/**
	 * 获取时间列表
	 * @param timestamp
	 * @return
	 * @throws MarvelsBusinessException
	 */
	public List<Map<String,Object>> getFaceSigTimeConfByDate(FaceSignApiDTO faceSignApiDto) throws MarvelsBusinessException;
	/**
	 * 获取未预约列表
	 * @param paramMap
	 * @return
	 * @throws MarvelsBusinessException
	 */
	public Map<String,Object> queryLoanList(FaceSignApiDTO faceSignApiDto) throws MarvelsBusinessException;

	/**
	 * 获取已面签的列表
	 * @param paramMap
	 * @return
	 * @throws MarvelsBusinessException
	 */
	public Map<String, Object> appointmentByAppointmentList(FaceSignApiDTO faceSignApiDto) throws MarvelsBusinessException;
	/**
	 * 获取腾讯签名
	 * @param faceSignApiDto
	 * @return
	 * @throws MarvelsBusinessException
	 */
	public Map<String, Object> getTencentSigByFaceJobId(FaceSignApiDTO faceSignApiDto) throws MarvelsBusinessException;
	/**
	 * 分配助理
	 * @param assistantDto
	 * @return
	 * @throws MarvelsBusinessException
	 */
	public String allotAssistant(AssistantDTO assistantDto) throws MarvelsBusinessException;
	/**
	 * 获取助理列表
	 * @param paramMap
	 * @return
	 * @throws MarvelsBusinessException
	 */
	public Map<String,Object> getAssistant(FaceSignApiDTO faceSignApiDto) throws MarvelsBusinessException;
	/**
	 * 取消分配助理
	 * @param paramMap
	 * @return
	 * @throws MarvelsBusinessException
	 */
	public String cancelAllot(FaceSignApiDTO faceSignApiDto) throws MarvelsBusinessException;
	/**
	 *  新增房间记录
	 * @param roomLogDTO
	 * @return
	 * @throws MarvelsBusinessException 
	 */
	public Integer insertRoomLog(RoomLogDTO roomLogDTO) throws MarvelsBusinessException;
	/**
	 * 
	 * 查询房间记录
	 * @return
	 * @throws MarvelsBusinessException
	 */
	
	public List<RoomLogDTO> selectRoomLogList(Integer appointmentId)throws MarvelsBusinessException;
	/**
	 * 修改面签状态
	 * @param faceSigAppointmentDTO
	 * @return
	 * @throws MarvelsBusinessException
	 */
	public Integer modifyAppointMentStatus(FaceSigAppointmentDTO faceSigAppointmentDTO) throws MarvelsBusinessException;
	/**
	 * 登录
	 * @param user
	 * @throws MarvelsBusinessException
	 */
	public String faceJobLogin(UserDTO user, HttpServletRequest request)throws MarvelsBusinessException;
	/**
	 * 前端预览合同
	 * @param faceSignApiDto
	 * @return
	 * @throws MarvelsBusinessException
	 */
	public String html(FaceSignApiDTO faceSignApiDto) throws MarvelsBusinessException;

}
